From 8e261056b9c3fd5027bfb0a980c06b78624475a8 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 1 May 2020 22:22:20 -0400 Subject: [PATCH] Use gtk_popover_set_child throughout Replace all uses of gtk_container_add on popovers by gtk_popover_set_child. --- demos/gtk-demo/fishbowl.c | 2 +- demos/gtk-demo/sliding_puzzle.c | 2 +- gtk/gtkemojichooser.c | 2 +- gtk/gtkentrycompletion.c | 2 +- gtk/gtknotebook.c | 6 ++++-- gtk/gtkplacessidebar.c | 2 +- gtk/gtkpopovermenu.c | 18 ++++++------------ gtk/gtkshortcutswindow.c | 2 +- gtk/gtktreepopover.c | 16 ++++++++-------- gtk/gtktreeview.c | 2 +- gtk/inspector/css-node-tree.c | 2 +- gtk/inspector/prop-editor.c | 16 ++++++++-------- gtk/inspector/recorder.c | 2 +- tests/gdkgears.c | 2 +- tests/testdnd2.c | 2 +- tests/testscrolledwindow.c | 2 +- tests/testtooltips.c | 2 +- testsuite/gtk/popover.c | 2 +- 18 files changed, 40 insertions(+), 44 deletions(-) diff --git a/demos/gtk-demo/fishbowl.c b/demos/gtk-demo/fishbowl.c index 3f49ad2f20..60ec2b5c28 100644 --- a/demos/gtk-demo/fishbowl.c +++ b/demos/gtk-demo/fishbowl.c @@ -161,7 +161,7 @@ create_menu_button (void) GtkWidget *w = gtk_menu_button_new (); GtkWidget *popover = gtk_popover_new (); - gtk_container_add (GTK_CONTAINER (popover), gtk_button_new_with_label ("Hey!")); + gtk_popover_set_child (GTK_POPOVER (popover), gtk_button_new_with_label ("Hey!")); gtk_popover_set_autohide (GTK_POPOVER (popover), FALSE); gtk_menu_button_set_popover (GTK_MENU_BUTTON (w), popover); g_signal_connect (w, "map", G_CALLBACK (mapped), NULL); diff --git a/demos/gtk-demo/sliding_puzzle.c b/demos/gtk-demo/sliding_puzzle.c index 9ea5c1ca3d..b4d0e991e0 100644 --- a/demos/gtk-demo/sliding_puzzle.c +++ b/demos/gtk-demo/sliding_puzzle.c @@ -440,7 +440,7 @@ do_sliding_puzzle (GtkWidget *do_widget) g_signal_connect (apply, "clicked", G_CALLBACK (reconfigure), NULL); popover = gtk_popover_new (); - gtk_container_add (GTK_CONTAINER (popover), tweaks); + gtk_popover_set_child (GTK_POPOVER (popover), tweaks); tweak = gtk_menu_button_new (); gtk_menu_button_set_popover (GTK_MENU_BUTTON (tweak), popover); diff --git a/gtk/gtkemojichooser.c b/gtk/gtkemojichooser.c index e8a0d70353..eee1ac7934 100644 --- a/gtk/gtkemojichooser.c +++ b/gtk/gtkemojichooser.c @@ -442,7 +442,7 @@ show_variations (GtkEmojiChooser *chooser, gtk_flow_box_set_activate_on_single_click (GTK_FLOW_BOX (box), TRUE); gtk_flow_box_set_selection_mode (GTK_FLOW_BOX (box), GTK_SELECTION_NONE); g_object_set (box, "accept-unpaired-release", TRUE, NULL); - gtk_container_add (GTK_CONTAINER (popover), view); + gtk_popover_set_child (GTK_POPOVER (popover), view); gtk_container_add (GTK_CONTAINER (view), box); g_signal_connect (box, "child-activated", G_CALLBACK (emoji_activated), parent_popover); diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c index 6191717f16..5ab7fb828a 100644 --- a/gtk/gtkentrycompletion.c +++ b/gtk/gtkentrycompletion.c @@ -600,7 +600,7 @@ gtk_entry_completion_constructed (GObject *object) gtk_widget_add_controller (priv->popup_window, controller); popup_frame = gtk_frame_new (NULL); - gtk_container_add (GTK_CONTAINER (priv->popup_window), popup_frame); + gtk_popover_set_child (GTK_POPOVER (priv->popup_window), popup_frame); priv->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); gtk_frame_set_child (GTK_FRAME (popup_frame), priv->vbox); diff --git a/gtk/gtknotebook.c b/gtk/gtknotebook.c index a594e7974d..c7b5597865 100644 --- a/gtk/gtknotebook.c +++ b/gtk/gtknotebook.c @@ -4245,8 +4245,9 @@ gtk_notebook_real_remove (GtkNotebook *notebook, { GtkWidget *parent = gtk_widget_get_parent (page->menu_label); - gtk_notebook_menu_label_unparent (parent, NULL); - gtk_container_remove (GTK_CONTAINER (notebook->menu), parent); + if (parent) + gtk_notebook_menu_label_unparent (parent, NULL); + gtk_popover_set_child (GTK_POPOVER (notebook->menu), NULL); gtk_widget_queue_resize (notebook->menu); } @@ -6370,6 +6371,7 @@ gtk_notebook_popup_enable (GtkNotebook *notebook) gtk_widget_set_parent (notebook->menu, notebook->tabs_widget); notebook->menu_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + g_object_ref_sink (notebook->menu_box); gtk_popover_menu_add_submenu (GTK_POPOVER_MENU (notebook->menu), notebook->menu_box, "main"); for (list = gtk_notebook_search_page (notebook, NULL, STEP_NEXT, FALSE); diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c index dabe9470ef..6ba5cd3a5c 100644 --- a/gtk/gtkplacessidebar.c +++ b/gtk/gtkplacessidebar.c @@ -2296,7 +2296,7 @@ create_rename_popover (GtkPlacesSidebar *sidebar) g_signal_connect (popover, "destroy", G_CALLBACK (on_rename_popover_destroy), sidebar); gtk_popover_set_position (GTK_POPOVER (popover), GTK_POS_RIGHT); grid = gtk_grid_new (); - gtk_container_add (GTK_CONTAINER (popover), grid); + gtk_popover_set_child (GTK_POPOVER (popover), grid); g_object_set (grid, "margin-start", 10, "margin-end", 10, diff --git a/gtk/gtkpopovermenu.c b/gtk/gtkpopovermenu.c index d9faf80f7b..eacd370f6b 100644 --- a/gtk/gtkpopovermenu.c +++ b/gtk/gtkpopovermenu.c @@ -265,7 +265,7 @@ gtk_popover_menu_init (GtkPopoverMenu *popover) gtk_stack_set_vhomogeneous (GTK_STACK (stack), FALSE); gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT); gtk_stack_set_interpolate_size (GTK_STACK (stack), TRUE); - gtk_container_add (GTK_CONTAINER (popover), stack); + gtk_popover_set_child (GTK_POPOVER (popover), stack); g_signal_connect (stack, "notify::visible-child-name", G_CALLBACK (visible_submenu_changed), popover); @@ -328,9 +328,7 @@ gtk_popover_menu_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - GtkWidget *stack; - - stack = gtk_bin_get_child (GTK_BIN (object)); + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (object)); switch (property_id) { @@ -354,9 +352,7 @@ gtk_popover_menu_set_property (GObject *object, const GValue *value, GParamSpec *pspec) { - GtkWidget *stack; - - stack = gtk_bin_get_child (GTK_BIN (object)); + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (object)); switch (property_id) { @@ -588,7 +584,7 @@ gtk_popover_menu_open_submenu (GtkPopoverMenu *popover, g_return_if_fail (GTK_IS_POPOVER_MENU (popover)); - stack = gtk_bin_get_child (GTK_BIN (popover)); + stack = gtk_popover_get_child (GTK_POPOVER (popover)); gtk_stack_set_visible_child_name (GTK_STACK (stack), name); } @@ -597,9 +593,7 @@ gtk_popover_menu_add_submenu (GtkPopoverMenu *popover, GtkWidget *submenu, const char *name) { - GtkWidget *stack; - - stack = gtk_bin_get_child (GTK_BIN (popover)); + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (popover)); gtk_stack_add_named (GTK_STACK (stack), submenu, name); } @@ -689,7 +683,7 @@ gtk_popover_menu_set_menu_model (GtkPopoverMenu *popover, GtkWidget *stack; GtkWidget *child; - stack = gtk_bin_get_child (GTK_BIN (popover)); + stack = gtk_popover_get_child (GTK_POPOVER (popover)); while ((child = gtk_widget_get_first_child (stack))) gtk_container_remove (GTK_CONTAINER (stack), child); diff --git a/gtk/gtkshortcutswindow.c b/gtk/gtkshortcutswindow.c index f51f77dc31..168dce4dc1 100644 --- a/gtk/gtkshortcutswindow.c +++ b/gtk/gtkshortcutswindow.c @@ -952,7 +952,7 @@ gtk_shortcuts_window_init (GtkShortcutsWindow *self) G_CALLBACK (gtk_shortcuts_window__list_box__row_activated), self, G_CONNECT_SWAPPED); - gtk_container_add (GTK_CONTAINER (priv->popover), GTK_WIDGET (priv->list_box)); + gtk_popover_set_child (GTK_POPOVER (priv->popover), GTK_WIDGET (priv->list_box)); priv->search_entry = GTK_SEARCH_ENTRY (gtk_search_entry_new ()); gtk_container_add (GTK_CONTAINER (priv->search_bar), GTK_WIDGET (priv->search_entry)); diff --git a/gtk/gtktreepopover.c b/gtk/gtktreepopover.c index b638ec2f17..c60ec32aa0 100644 --- a/gtk/gtktreepopover.c +++ b/gtk/gtktreepopover.c @@ -25,7 +25,6 @@ #include "gtkcellarea.h" #include "gtkcelllayout.h" #include "gtkcellview.h" -#include "gtkbin.h" #include "gtkintl.h" #include "gtkprivate.h" #include "gtkgizmoprivate.h" @@ -231,7 +230,7 @@ gtk_tree_popover_add_submenu (GtkTreePopover *popover, GtkWidget *submenu, const char *name) { - GtkWidget *stack = gtk_bin_get_child (GTK_BIN (popover)); + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (popover)); gtk_stack_add_named (GTK_STACK (stack), submenu, name); } @@ -239,8 +238,7 @@ static GtkWidget * gtk_tree_popover_get_submenu (GtkTreePopover *popover, const char *name) { - GtkWidget *stack = gtk_bin_get_child (GTK_BIN (popover)); - + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (popover)); return gtk_stack_get_child_by_name (GTK_STACK (stack), name); } @@ -248,7 +246,7 @@ void gtk_tree_popover_open_submenu (GtkTreePopover *popover, const char *name) { - GtkWidget *stack = gtk_bin_get_child (GTK_BIN (popover)); + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (popover)); gtk_stack_set_visible_child_name (GTK_STACK (stack), name); } @@ -261,7 +259,7 @@ gtk_tree_popover_init (GtkTreePopover *popover) gtk_stack_set_vhomogeneous (GTK_STACK (stack), FALSE); gtk_stack_set_transition_type (GTK_STACK (stack), GTK_STACK_TRANSITION_TYPE_SLIDE_LEFT_RIGHT); gtk_stack_set_interpolate_size (GTK_STACK (stack), TRUE); - gtk_container_add (GTK_CONTAINER (popover), stack); + gtk_popover_set_child (GTK_POPOVER (popover), stack); gtk_widget_add_css_class (GTK_WIDGET (popover), GTK_STYLE_CLASS_MENU); } @@ -466,7 +464,7 @@ static GtkWidget * gtk_tree_popover_get_path_item (GtkTreePopover *popover, GtkTreePath *search) { - GtkWidget *stack = gtk_bin_get_child (GTK_BIN (popover)); + GtkWidget *stack = gtk_popover_get_child (GTK_POPOVER (popover)); GtkWidget *item = NULL; GList *children, *l; @@ -733,7 +731,9 @@ gtk_tree_popover_populate (GtkTreePopover *popover) static void rebuild_menu (GtkTreePopover *popover) { - GtkWidget *stack = gtk_bin_get_child (GTK_BIN (popover)); + GtkWidget *stack; + + stack = gtk_popover_get_child (GTK_POPOVER (popover)); gtk_container_foreach (GTK_CONTAINER (stack), (GtkCallback) gtk_widget_destroy, NULL); if (popover->model) diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c index d7be0c9ac6..9d192086a1 100644 --- a/gtk/gtktreeview.c +++ b/gtk/gtktreeview.c @@ -9999,7 +9999,7 @@ gtk_tree_view_ensure_interactive_directory (GtkTreeView *tree_view) g_signal_connect (tree_view->search_entry, "changed", G_CALLBACK (gtk_tree_view_search_changed), tree_view); - gtk_container_add (GTK_CONTAINER (tree_view->search_popover), tree_view->search_entry); + gtk_popover_set_child (GTK_POPOVER (tree_view->search_popover), tree_view->search_entry); gtk_widget_realize (tree_view->search_entry); } diff --git a/gtk/inspector/css-node-tree.c b/gtk/inspector/css-node-tree.c index 52e94a52c7..a5a2017c0f 100644 --- a/gtk/inspector/css-node-tree.c +++ b/gtk/inspector/css-node-tree.c @@ -108,7 +108,7 @@ show_node_prop_editor (NodePropEditor *npe) editor = gtk_inspector_prop_editor_new (G_OBJECT (npe->node), npe->prop_name, NULL); - gtk_container_add (GTK_CONTAINER (popover), editor); + gtk_popover_set_child (GTK_POPOVER (popover), editor); gtk_popover_popup (GTK_POPOVER (popover)); diff --git a/gtk/inspector/prop-editor.c b/gtk/inspector/prop-editor.c index a5630d4488..04c8d20dee 100644 --- a/gtk/inspector/prop-editor.c +++ b/gtk/inspector/prop-editor.c @@ -573,7 +573,7 @@ flags_changed (GObject *object, GParamSpec *pspec, gpointer data) g_free (str); popover = gtk_menu_button_get_popover (GTK_MENU_BUTTON (data)); - sw = gtk_bin_get_child (GTK_BIN (popover)); + sw = gtk_popover_get_child (GTK_POPOVER (popover)); viewport = gtk_bin_get_child (GTK_BIN (sw)); box = gtk_viewport_get_child (GTK_VIEWPORT (viewport)); children = gtk_container_get_children (GTK_CONTAINER (box)); @@ -943,12 +943,12 @@ property_editor (GObject *object, GFlagsClass *fclass; gint j; - popover = gtk_popover_new (); + popover = gtk_popover_new (); prop_edit = gtk_menu_button_new (); gtk_menu_button_set_popover (GTK_MENU_BUTTON (prop_edit), popover); sw = gtk_scrolled_window_new (NULL, NULL); - gtk_container_add (GTK_CONTAINER (popover), sw); + gtk_popover_set_child (GTK_POPOVER (popover), sw); g_object_set (sw, "hexpand", TRUE, "vexpand", TRUE, @@ -1006,17 +1006,17 @@ property_editor (GObject *object, else if (type == G_TYPE_PARAM_OBJECT && g_type_is_a (G_PARAM_SPEC_VALUE_TYPE (spec), G_TYPE_LIST_MODEL)) { - GtkWidget *popover; - GtkWidget *box; - GtkWidget *sw; + GtkWidget *popover; + GtkWidget *box; + GtkWidget *sw; GListModel *model; - popover = gtk_popover_new (); + popover = gtk_popover_new (); prop_edit = gtk_menu_button_new (); gtk_menu_button_set_popover (GTK_MENU_BUTTON (prop_edit), popover); sw = gtk_scrolled_window_new (NULL, NULL); - gtk_container_add (GTK_CONTAINER (popover), sw); + gtk_popover_set_child (GTK_POPOVER (popover), sw); g_object_set (sw, "hexpand", TRUE, "vexpand", TRUE, diff --git a/gtk/inspector/recorder.c b/gtk/inspector/recorder.c index ac7f728f7f..d59d7ca8a6 100644 --- a/gtk/inspector/recorder.c +++ b/gtk/inspector/recorder.c @@ -1175,7 +1175,7 @@ node_property_activated (GtkTreeView *tv, gtk_widget_set_margin_end (image, 20); gtk_widget_set_margin_top (image, 20); gtk_widget_set_margin_bottom (image, 20); - gtk_container_add (GTK_CONTAINER (popover), image); + gtk_popover_set_child (GTK_POPOVER (popover), image); gtk_popover_popup (GTK_POPOVER (popover)); g_signal_connect (popover, "unmap", G_CALLBACK (gtk_widget_destroy), NULL); diff --git a/tests/gdkgears.c b/tests/gdkgears.c index a2eae19fd5..bc7a9c869f 100644 --- a/tests/gdkgears.c +++ b/tests/gdkgears.c @@ -199,7 +199,7 @@ main (int argc, char *argv[]) gtk_menu_button_set_direction (GTK_MENU_BUTTON (button), GTK_ARROW_UP); popover = gtk_popover_new (); label = gtk_label_new ("Popovers work too!"); - gtk_container_add (GTK_CONTAINER (popover), label); + gtk_popover_set_child (GTK_POPOVER (popover), label); gtk_menu_button_set_popover (GTK_MENU_BUTTON (button), popover); gtk_container_add (GTK_CONTAINER (hbox), button); diff --git a/tests/testdnd2.c b/tests/testdnd2.c index cf64e69035..e2b3bb6d30 100644 --- a/tests/testdnd2.c +++ b/tests/testdnd2.c @@ -177,7 +177,7 @@ ask_actions (GdkDrop *drop, g_object_set_data (G_OBJECT (image), "popover", popover); box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_container_add (GTK_CONTAINER (popover), box); + gtk_popover_set_child (GTK_POPOVER (popover), box); button = gtk_button_new_with_label ("Copy"); g_signal_connect (button, "clicked", G_CALLBACK (do_copy), NULL); gtk_container_add (GTK_CONTAINER (box), button); diff --git a/tests/testscrolledwindow.c b/tests/testscrolledwindow.c index a8926410d3..c00508288c 100644 --- a/tests/testscrolledwindow.c +++ b/tests/testscrolledwindow.c @@ -221,7 +221,7 @@ scrollable_policy (void) gtk_container_add (GTK_CONTAINER (cntl), widget); vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); - gtk_container_add (GTK_CONTAINER (popover), vbox); + gtk_popover_set_child (GTK_POPOVER (popover), vbox); /* Popover's scrolled window */ swindow = gtk_scrolled_window_new (NULL, NULL); diff --git a/tests/testtooltips.c b/tests/testtooltips.c index 84c40e445f..8696427e2f 100644 --- a/tests/testtooltips.c +++ b/tests/testtooltips.c @@ -424,7 +424,7 @@ main (int argc, char *argv[]) popover = gtk_popover_new (); gtk_menu_button_set_popover (GTK_MENU_BUTTON (button), popover); box2 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); - gtk_container_add (GTK_CONTAINER (popover), box2); + gtk_popover_set_child (GTK_POPOVER (popover), box2); button = gtk_label_new ("Hidden here"); custom = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5); diff --git a/testsuite/gtk/popover.c b/testsuite/gtk/popover.c index cb7813f5c3..2a982e2417 100644 --- a/testsuite/gtk/popover.c +++ b/testsuite/gtk/popover.c @@ -44,7 +44,7 @@ test_show_popover (void) window = gtk_window_new (); button = gtk_menu_button_new (); popover = gtk_popover_new (); - gtk_container_add (GTK_CONTAINER (popover), gtk_label_new ("Nu?")); + gtk_popover_set_child (GTK_POPOVER (popover), gtk_label_new ("Nu?")); gtk_menu_button_set_popover (GTK_MENU_BUTTON (button), popover); gtk_container_add (GTK_CONTAINER (window), button); -- 2.30.2